#ifndef _CHARSET_CONVERT_H_
#define _CHARSET_CONVERT_H_

#include <string>

namespace utility {
typedef unsigned short TCHAR;
enum {
	CONVERT_ERROR = static_cast<size_t>(-1),
};
size_t UTF_8ToUnicode(TCHAR * dst, size_t dst_size/*bytes*/, const char * src);  // 把UTF-8转换成Unicode(UCS_2LE)
size_t UnicodeToUTF_8(char* dst, size_t size, const TCHAR * src, size_t src_size = 0);  //Unicode 转换成UTF-8
void UnicodeToGB2312(char* pOut,TCHAR uData);  // 把Unicode 转换成 GB2312
void Gb2312ToUnicode(TCHAR * pOut,char *gbBuffer);// GB2312 转换成　Unicode
void GB2312ToUTF_8(std::string & pOut,char *pText, int pLen);//GB2312 转为 UTF-8
void UTF_8ToGB2312(std::string & pOut, char *pText, int pLen);//UTF-8 转为 GB2312
// len 为 str 的长度，单位字节
bool is_UCS_2_string(const char * str, size_t len);
// len 为 str 的长度，单位字节
bool is_UTF_8_string(const char * str, size_t len);
}

#endif
